package com.lncg.service;

import com.lncg.entity.DeviceReceiveData;

import java.util.List;
import java.util.concurrent.CompletableFuture;

/**
 * 设备接收数据服务接口
 */
public interface IDeviceReceiveDataService {

    /**
     * 处理设备数据（异步）
     * 1. 检查wm_device_recive_data表中是否有该IMEI
     * 2. 如果有就更新所有数据，如果没有就新插入
     * 3. 所有数据都插入wm_device_recive_data_his历史表
     * 
     * @param deviceData 设备数据
     * @return 处理结果（CompletableFuture）
     */
    CompletableFuture<Boolean> processDeviceDataAsync(DeviceReceiveData deviceData);

    /**
     * 处理设备数据（同步）
     * 1. 检查wm_device_recive_data表中是否有该IMEI
     * 2. 如果有就更新所有数据，如果没有就新插入
     * 3. 所有数据都插入wm_device_recive_data_his历史表
     * 
     * @param deviceData 设备数据
     * @return 处理结果
     */
    boolean processDeviceData(DeviceReceiveData deviceData);

    /**
     * 根据IMEI查询设备数据
     * @param imei 设备IMEI
     * @return 设备数据
     */
    DeviceReceiveData getDeviceDataByImei(String imei);

    /**
     * 获取所有设备数据
     * @return 设备数据列表
     */
    List<DeviceReceiveData> getAllDeviceData();
}
